#pragma once

#include "../stdafx.h"
#include "../Network/Packet.h"
#include "../User/Process.h"


class CUser
{

public:
	CUser(void* usrConnection);
	virtual ~CUser();

public:  // interface

	void				addProcess(void*);
	void				removeProcess(void*);
	void				checkCompletedProcesses();
	int					getOutstandingPacketCount();
	CPacket*			getNextPacket();
	void				addOutboundPacket(CPacket* p);
	void				destroyNextPacket();
	void				handleInboundPacket(CPacket* p);

protected:
	
	queue<CPacket*>		_outboundPackets;
	vector<CProcess*>	_userProcesses;
	void*				_userConnection;

};